﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace BrokerBase.Lib.Product
{
    public class RateRow:IRateRow
    {
        public const int MAX_COLUMN = 100;

        private double?[] rates = new double?[MAX_COLUMN];

        public RateRow()
        {

        }

        public RateRow(IProduct product):this()
        {
            Owner = product;
        }

        public virtual int Id { get; set; }

        public virtual IProduct Owner { get; set; }

        public virtual string Key1 { get; set; }

        public virtual string Key2{get;set;}

        public virtual int WrapIndex{get;set;}


        public virtual double?[] Rates
        {
            get { return rates; }
        }

        /// <summary>
        /// 费率列
        /// </summary>
        /// 
        public virtual double? Col0 
        {
            get { return rates[0]; }
            set { rates[0] = value; }
        }

        public virtual double? Col1
        {
            get { return rates[1]; }
            set { rates[1] = value; }
        }

        public virtual double? Col2
        {
            get { return rates[2]; }
            set { rates[2] = value; }
        }

        public virtual double? Col3
        {
            get { return rates[3]; }
            set { rates[3] = value; }
        }

        public virtual double? Col4
        {
            get { return rates[4]; }
            set { rates[4] = value; }
        }

        public virtual double? Col5
        {
            get { return rates[5]; }
            set { rates[5] = value; }
        }

        public virtual double? Col6
        {
            get { return rates[6]; }
            set { rates[6] = value; }
        }

        public virtual double? Col7
        {
            get { return rates[7]; }
            set { rates[7] = value; }
        }

        public virtual double? Col8
        {
            get { return rates[8]; }
            set { rates[8] = value; }
        }

        public virtual double? Col9
        {
            get { return rates[9]; }
            set { rates[9] = value; }
        }

        public virtual double? Col10
        {
            get { return rates[10]; }
            set { rates[10] = value; }
        }

        public virtual double? Col11
        {
            get { return rates[11]; }
            set { rates[11] = value; }
        }

        public virtual double? Col12
        {
            get { return rates[12]; }
            set { rates[12] = value; }
        }

        public virtual double? Col13
        {
            get { return rates[13]; }
            set { rates[13] = value; }
        }

        public virtual double? Col14
        {
            get { return rates[14]; }
            set { rates[14] = value; }
        }

        public virtual double? Col15
        {
            get { return rates[15]; }
            set { rates[15] = value; }
        }

        public virtual double? Col16
        {
            get { return rates[16]; }
            set { rates[16] = value; }
        }

        public virtual double? Col17
        {
            get { return rates[17]; }
            set { rates[17] = value; }
        }

        public virtual double? Col18
        {
            get { return rates[18]; }
            set { rates[18] = value; }
        }

        public virtual double? Col19
        {
            get { return rates[19]; }
            set { rates[19] = value; }
        }

        public virtual double? Col20
        {
            get { return rates[20]; }
            set { rates[20] = value; }
        }

        public virtual double? Col21
        {
            get { return rates[21]; }
            set { rates[21] = value; }
        }

        public virtual double? Col22
        {
            get { return rates[22]; }
            set { rates[22] = value; }
        }

        public virtual double? Col23
        {
            get { return rates[23]; }
            set { rates[23] = value; }
        }

        public virtual double? Col24
        {
            get { return rates[24]; }
            set { rates[24] = value; }
        }

        public virtual double? Col25
        {
            get { return rates[25]; }
            set { rates[25] = value; }
        }

        public virtual double? Col26
        {
            get { return rates[26]; }
            set { rates[26] = value; }
        }

        public virtual double? Col27
        {
            get { return rates[27]; }
            set { rates[27] = value; }
        }

        public virtual double? Col28
        {
            get { return rates[28]; }
            set { rates[28] = value; }
        }

        public virtual double? Col29
        {
            get { return rates[29]; }
            set { rates[29] = value; }
        }

        public virtual double? Col30
        {
            get { return rates[30]; }
            set { rates[30] = value; }
        }


        public virtual double? Col31
        {
            get { return rates[31]; }
            set { rates[31] = value; }
        }

        public virtual double? Col32
        {
            get { return rates[32]; }
            set { rates[32] = value; }
        }

        public virtual double? Col33
        {
            get { return rates[33]; }
            set { rates[33] = value; }
        }

        public virtual double? Col34
        {
            get { return rates[34]; }
            set { rates[34] = value; }
        }

        public virtual double? Col35
        {
            get { return rates[35]; }
            set { rates[35] = value; }
        }

        public virtual double? Col36
        {
            get { return rates[36]; }
            set { rates[36] = value; }
        }

        public virtual double? Col37
        {
            get { return rates[37]; }
            set { rates[37] = value; }
        }

        public virtual double? Col38
        {
            get { return rates[38]; }
            set { rates[38] = value; }
        }

        public virtual double? Col39
        {
            get { return rates[39]; }
            set { rates[39] = value; }
        }

        public virtual double? Col40
        {
            get { return rates[40]; }
            set { rates[40] = value; }
        }

        public virtual double? Col41
        {
            get { return rates[41]; }
            set { rates[41] = value; }
        }

        public virtual double? Col42
        {
            get { return rates[42]; }
            set { rates[42] = value; }
        }

        public virtual double? Col43
        {
            get { return rates[43]; }
            set { rates[43] = value; }
        }

        public virtual double? Col44
        {
            get { return rates[44]; }
            set { rates[44] = value; }
        }

        public virtual double? Col45
        {
            get { return rates[45]; }
            set { rates[45] = value; }
        }

        public virtual double? Col46
        {
            get { return rates[46]; }
            set { rates[46] = value; }
        }

        public virtual double? Col47
        {
            get { return rates[47]; }
            set { rates[47] = value; }
        }

        public virtual double? Col48
        {
            get { return rates[48]; }
            set { rates[48] = value; }
        }

        public virtual double? Col49
        {
            get { return rates[49]; }
            set { rates[49] = value; }
        }
        public virtual double? Col50
        {
            get { return rates[50]; }
            set { rates[50] = value; }
        }

        public virtual double? Col51
        {
            get { return rates[51]; }
            set { rates[51] = value; }
        }

        public virtual double? Col52
        {
            get { return rates[52]; }
            set { rates[52] = value; }
        }

        public virtual double? Col53
        {
            get { return rates[53]; }
            set { rates[53] = value; }
        }

        public virtual double? Col54
        {
            get { return rates[54]; }
            set { rates[54] = value; }
        }

        public virtual double? Col55
        {
            get { return rates[55]; }
            set { rates[55] = value; }
        }

        public virtual double? Col56
        {
            get { return rates[56]; }
            set { rates[56] = value; }
        }

        public virtual double? Col57
        {
            get { return rates[57]; }
            set { rates[57] = value; }
        }

        public virtual double? Col58
        {
            get { return rates[58]; }
            set { rates[58] = value; }
        }

        public virtual double? Col59
        {
            get { return rates[59]; }
            set { rates[59] = value; }
        }
        public virtual double? Col60
        {
            get { return rates[60]; }
            set { rates[60] = value; }
        }

        public virtual double? Col61
        {
            get { return rates[61]; }
            set { rates[61] = value; }
        }

        public virtual double? Col62
        {
            get { return rates[62]; }
            set { rates[62] = value; }
        }

        public virtual double? Col63
        {
            get { return rates[63]; }
            set { rates[63] = value; }
        }

        public virtual double? Col64
        {
            get { return rates[64]; }
            set { rates[64] = value; }
        }

        public virtual double? Col65
        {
            get { return rates[65]; }
            set { rates[65] = value; }
        }

        public virtual double? Col66
        {
            get { return rates[66]; }
            set { rates[66] = value; }
        }

        public virtual double? Col67
        {
            get { return rates[67]; }
            set { rates[67] = value; }
        }

        public virtual double? Col68
        {
            get { return rates[68]; }
            set { rates[68] = value; }
        }

        public virtual double? Col69
        {
            get { return rates[69]; }
            set { rates[69] = value; }
        }

        public virtual double? Col70
        {
            get { return rates[70]; }
            set { rates[70] = value; }
        }

        public virtual double? Col71
        {
            get { return rates[71]; }
            set { rates[71] = value; }
        }

        public virtual double? Col72
        {
            get { return rates[72]; }
            set { rates[72] = value; }
        }

        public virtual double? Col73
        {
            get { return rates[73]; }
            set { rates[73] = value; }
        }

        public virtual double? Col74
        {
            get { return rates[74]; }
            set { rates[74] = value; }
        }

        public virtual double? Col75
        {
            get { return rates[75]; }
            set { rates[75] = value; }
        }

        public virtual double? Col76
        {
            get { return rates[76]; }
            set { rates[76] = value; }
        }

        public virtual double? Col77
        {
            get { return rates[77]; }
            set { rates[77] = value; }
        }

        public virtual double? Col78
        {
            get { return rates[78]; }
            set { rates[78] = value; }
        }

        public virtual double? Col79
        {
            get { return rates[79]; }
            set { rates[79] = value; }
        }

        public virtual double? Col80
        {
            get { return rates[80]; }
            set { rates[80] = value; }
        }

        public virtual double? Col81
        {
            get { return rates[81]; }
            set { rates[81] = value; }
        }

        public virtual double? Col82
        {
            get { return rates[82]; }
            set { rates[82] = value; }
        }

        public virtual double? Col83
        {
            get { return rates[83]; }
            set { rates[83] = value; }
        }

        public virtual double? Col84
        {
            get { return rates[84]; }
            set { rates[84] = value; }
        }

        public virtual double? Col85
        {
            get { return rates[85]; }
            set { rates[85] = value; }
        }

        public virtual double? Col86
        {
            get { return rates[86]; }
            set { rates[86] = value; }
        }

        public virtual double? Col87
        {
            get { return rates[87]; }
            set { rates[87] = value; }
        }

        public virtual double? Col88
        {
            get { return rates[88]; }
            set { rates[88] = value; }
        }

        public virtual double? Col89
        {
            get { return rates[89]; }
            set { rates[89] = value; }
        }
        public virtual double? Col90
        {
            get { return rates[90]; }
            set { rates[90] = value; }
        }

        public virtual double? Col91
        {
            get { return rates[91]; }
            set { rates[91] = value; }
        }

        public virtual double? Col92
        {
            get { return rates[92]; }
            set { rates[92] = value; }
        }

        public virtual double? Col93
        {
            get { return rates[93]; }
            set { rates[93] = value; }
        }

        public virtual double? Col94
        {
            get { return rates[94]; }
            set { rates[94] = value; }
        }

        public virtual double? Col95
        {
            get { return rates[95]; }
            set { rates[95] = value; }
        }

        public virtual double? Col96
        {
            get { return rates[96]; }
            set { rates[96] = value; }
        }

        public virtual double? Col97
        {
            get { return rates[97]; }
            set { rates[97] = value; }
        }

        public virtual double? Col98
        {
            get { return rates[98]; }
            set { rates[98] = value; }
        }

        public virtual double? Col99
        {
            get { return rates[99]; }
            set { rates[99] = value; }
        }
    }
}
